package net.realsee.domain.wcs.rcs.hik;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

/**
 * HIK回调实体
 *
 * @author 孙正华
 * @since 2023/8/18 10:04
 */
@Data
public class HikRcsAgvCallback {

    /**
     * 请求编号，每个请求都要一个唯一编号， 同一个请求重复提交， 使用同一编号
     */
    private String reqCode;

    /**
     * 请求时间戳，格式: “yyyy-MM-dd HH:mm:ss”
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String reqTime;

    /**
     * 应该是起点
     */
    private String callCode;

    /**
     * 地码 X 坐标(mm)：任务完成时有值
     */
    private Integer cooX;

    /**
     * 地码 Y 坐标(mm)：任务完成时
     * 值
     */
    private Integer cooY;

    /**
     * 当前位置编号
     * 任务开始：该位置为任务起点
     * 走出储位：该位置为任务起点
     * 任务单取消：该位置为工作位编号
     * 任务结束：该位置为任务终点
     * 取放申请：取放料箱的点
     */
    private String currentPositionCode;

    /**
     * 自定义字段
     */
    private String data;

    /**
     * 地图编号
     */
    private String mapCode;

    /**
     * 地码编号：任务完成时有值
     */
    private String mapDataCode;

    /**
     * 仓位编号：叉车与 CTU 任务时有值
     */
    private String stgBinCode;

    /**
     * 方法名, 可使用任务类型做为方法名
     * 由 RCS-2000 任务模板配置后并告知上层系统
     * 默认使用方式:
     * start : 任务开始
     * outbin : 走出储位
     * end : 任务结束
     * cancel : 任务单取消
     * apply：CTU 料箱取放申请
     */
    private String method;

    /**
     * 货架编号：背货架时有值
     */
    private String podCode;

    /**
     * 货架方向
     * 180”,”0”,”90”,”-90” 分别 对 应 地 图 的 ” 左 ”,” 右 ”,”上”,”下”：任务完成时有值
     */
    private String podDir;

    /**
     * 物料编号
     */
    private String materialLot;

    /**
     * AGV编号( 同AGVCode)
     */
    private String robotCode;

    /**
     * 当前任务单号
     */
    private String taskCode;

    /**
     * 工作位，与 RCS-2000 端配置的位置名称一致。任务完成时有值，与生成任务单接口中的 wbCode 一致。
     */
    private String wbCode;

    /**
     * 容器编号
     */
    private String ctnrCode;

    /**
     * 容器类型
     */
    private String ctnrType;

    /**
     * 巷道编号
     */
    private String roadWayCode;

    /**
     * 巷道内顺序号 巷道尾是 0，到巷道头依次递增 1
     */
    private String seq;

    /**
     * 设备编号，如梳齿式工作站、输送线等 ，一般使用于CTU场景。系统根据仓位定位到关联的设备编号。
     */
    private String eqpCode;

}
